package com.classfile;

import java.io.File;
import java.io.FileFilter;

public class FileDemo1 {
    public static void main(String[] args) {
        //获取该文件目录下的所有文件包括文件夹,以字符串形式返回
        File file = new File("day03-code\\src\\com\\");
        String[] list = file.list();//返回的是文件名
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("-------------------------------");
//        //获取该文件目录下的所有文件包括文件夹,以File形式返回,返回的是相对路径
//        File[] files = file.listFiles();//返回的是文件名所对应的相对路径
//        for (File f : files) {
//            System.out.println(f);
//        }
        //获取该文件目录下的所有文件包括文件夹,以File形式返回,返回的是绝对路径
        //简写lambda表达式

        //筛选过滤器
        //例如只要文件名长度等于5的文件路径
        //简写lambda表达式
        File[] files1 = file.listFiles((FileFilter) pathname -> pathname.getName().length()==5);
        for (File file1 : files1) {
            System.out.println(file1);
        }
        //超简写lambda表达式
        //筛选过滤器 ， 例如只要文件名后缀为.java的文件路径
        File[] files = file.listFiles(pathname -> pathname.getName().endsWith(".java"));
        for (File file1 : files) {
            System.out.println(file1);
        }
        //完整lambda表达式
        File[] files2 = file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return pathname.isFile();
            }
        });
        for (File file1 : files2) {
            System.out.println(file1);
        }

    }
    public static void main1(String[] args) {
        File file = new File("day03-code\\src\\com\\classfile\\FileDemo.java");
        System.out.println(file.exists());//判断文件是否存在
        System.out.println(file.isFile());//判断是否是文件
        System.out.println(file.isDirectory());//判断是否是目录
    }
}
